﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Jenvin.Library.Utils.Encryption
{
    /// <summary>
    ///非对称加密接口
    /// </summary>
    public interface IAysmEncryption:ISymEncryption
    {
        /// <summary>
        /// 创建一个新密钥对
        /// </summary>
        /// <param name="privatePublic"> ture 表示包含私钥。false 表示不包含</param>
        /// <returns>包含Key 的xml</returns>
        string CreateKey(bool privatePublic);
        /// <summary>
        /// 生成摘要。并给摘要签名
        /// </summary>
        /// <param name="input">数据</param>
        /// <param name="hash">数据的摘要</param>
        /// <returns>生成后摘要并签名的数据</returns>
        string SignHash(string input, out string hash);
        /// <summary>
        /// 验证签名
        /// </summary>
        /// <param name="hash">原始摘要</param>
        /// <param name="signedHash">签名后的摘要</param>
        /// <returns></returns>
        bool VerifyHash(string hash, string signedHash);
    }
}
